//
// Created by lingzhitech on 25-9-22.
//

#ifndef QUOTE_H
#define QUOTE_H
#include <iostream>
#include <ostream>
#include <string>


class Quote {
public:
    Quote() = default;

    Quote(const std::string &bookNumber, double price): bookNumber_(bookNumber), price_(price) {
    }


    std::string isbn() const { return bookNumber_; }

    virtual double netPrice(std::size_t n) const {
        return n * price_;
    }

    virtual void debug() const {
        std::cout << "Book Number: " << bookNumber_ << std::endl;
        std::cout << "Price: " << price_ << std::endl;

    }

    virtual ~Quote() = default; // dynamic binding for the destructor

private:
    std::string bookNumber_;

protected:
    double price_ = 0.0;
};

double printTotal(std::ostream &os, const Quote &item, std::size_t n);

#endif //QUOTE_H
